/**
 * 时间配置
 * 处理时间计算、滚动位置和节假日设置
 */

// 时间范围配置
export const timeRangeConfig = {
  // 开始日期
  startDate: new Date('2025-07-01'),
  // 结束日期
  endDate: new Date('2025-07-31'),
  // 默认显示的天数
  defaultDisplayDays: 30,
};

// 计算总天数（包含开始和结束日期）
export const totalDays = Math.floor((+timeRangeConfig.endDate - +timeRangeConfig.startDate) / (60 * 60 * 24 * 1000)) + 1;

// 从开始日期到今天的天数偏移量
export const todayOffset = Math.floor((+new Date() - +timeRangeConfig.startDate) / (60 * 60 * 24 * 1000));

// 初始滚动 X 位置（从开始日期开始）
export const initLastScrollX = 0;

// 是否包含节假日（目前未实现）
export const includeHoliday = false;

// 获取指定索引的日期
export function getDateByIndex(index: number): Date {
  return new Date(+timeRangeConfig.startDate + index * 60 * 60 * 24 * 1000);
}

// 获取日期在时间范围内的索引
export function getDateIndex(date: Date): number {
  return Math.floor((+date - +timeRangeConfig.startDate) / (60 * 60 * 24 * 1000));
}

// 检查日期是否在时间范围内
export function isDateInRange(date: Date): boolean {
  return date >= timeRangeConfig.startDate && date <= timeRangeConfig.endDate;
}
